Jupyter Notebook & Python Intro

Zuerst navigieren wir mit der Kommandozeile in den Folder, wo wir das Jupyter Notebook abspeichern wollen. Dann gehen wir in unser virtual environment und starten mit "jupyter notebook" unser Notebook auf. Jupyter Notebook ist eine Arbeitsoberfläche, der für Coding-Anfänger sehr einfach zu bedienen ist, denn es lassen sich Code-Teile einzelnen abspielen.

Es gibt zwei Formate der Zellen. Code-Format und sogenanntes Markdown. Letzteres ist ein Textformat, das dem Text möglichst wenige Formatinfos anhängt. Nicht wie Word zum Beispiel. Wenn man grosse Notebooks entwickelt, ist es sehr hilfreich damit zu arbeiten. Zum Beispiel

Titel

Titel

Titel

Titel

Titel

In [1]:
#dsfdskjfbskjdfbdkjbfkjdbf
#asdasd
  1. sad hello

Oder Aufzählungen, Fetten. Das geht alles mit Markdown. Man kann sogar Tabellen bauen oder Hyper Links setzen. Wie zum Beispiel auf dieses Markdown Cheatsheet. Hier sind weitere sehr praktische Format. In der Regel benutzten wir Jupyter Notebooks aber nicht, um zu texten, sondern zu coden. Legen wir los.

  1. Print und Input
  2. Datentypen
  3. Aktionen
  4. Variablen und Zuordnungen
  5. If, elif, else
  6. Lists
  7. Dictionaries
  8. Tuples
  9. Simple Funktionen: len, sort, sorted
  10. For Loop

Python


In [3]:
#Mit einem Hashtag vor einer Zeile können wir Code kommentieren, auch das ist sehr wichtig. 
#Immer, wirklich, immer den eigenen Code zu kommentieren. Vor allem am Anfang. 
print("hello world")


hello world

In [4]:
#Der Printbefehl druckt einfach alles aus. Nicht wirklich wahnsinnig toll. 
#Doch er ist später sehr nützlich. Vorallem wenn es darum geht Fehler im eigenn Code zu finden.

In [5]:
#Mit dem Inputbefehl kannst Du Den Nutzer mit dem intergieren. 
input('wie alt bis Du?')


wie alt bis Du?41
Out[5]:
'41'

 Datentypen


In [7]:
#Strings
'Hallo wie "geht es Dir"'
"12345"


Out[7]:
'12345'

In [8]:
124


Out[8]:
124

In [9]:
str(124)


Out[9]:
'124'

In [8]:
#Integer
type(567)


Out[8]:
int

In [12]:
type(int('1234'))


Out[12]:
int

In [13]:
#Floats
4.542323


Out[13]:
4.542323

In [14]:
float(12)


Out[14]:
12.0

In [18]:
int(4.64)


Out[18]:
4

In [9]:
#Dates, eigentlich Strings
'15-11-2019'


Out[9]:
'15-11-2019'

 Aktionen


In [12]:
print('Hallo' + ' '+ 'wie' + 'geht' + 'es')


Hallo wiegehtes

In [11]:
print('Hallo','wie','geht','es')


Hallo wie geht es

In [ ]:
#Alle anderen gängigen: 
#minus -
#Mal *
#geteilt durch /
#Spezial: Modulo. %, geteilt durch und der Rest, der übrigbleibt

In [23]:
22 % 5


Out[23]:
2

In [25]:
2


Out[25]:
2

Variablen, Vergleiche und Zuordnungen von Variablen


In [ ]:
#Grösser und kleiner als: 
#< >

In [ ]:
#Gleich == (wichtig, doppelte Gleichzeichen)
#Denn das einfach definiert eine Variable

In [15]:
'Schweiz' == 'Schweiz'


Out[15]:
True

In [16]:
Schweiz = 'reich'

In [14]:
Schweiz


Out[14]:
'reich'

In [17]:
Schweiz == 'reich'


Out[17]:
True

In [19]:
reich = 'arm'

In [33]:
1 = 'reich'


  File "<ipython-input-33-c0154c6665bc>", line 1
    1 = 'reich'
               ^
SyntaxError: can't assign to literal

In [ ]:
"5schweiz"

In [34]:
1 = 6


  File "<ipython-input-34-b1114e002389>", line 1
    1 = 6
         ^
SyntaxError: can't assign to literal

In [21]:
a = 34

In [22]:
a = b


---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-22-a3dfde055075> in <module>()
----> 1 a = b

NameError: name 'b' is not defined

In [23]:
a = 'b'

In [24]:
a == 'b'


Out[24]:
True

In [25]:
a


Out[25]:
'b'

if - else - (elif)


In [26]:
elem = int(input('Wie alt bist Du?'))


Wie alt bist Du?12

In [27]:
elem


Out[27]:
12

In [28]:
if elem < 0:
    print('Das ist unmöglich')
else:
    print('Du bist aber alt')


Du bist aber alt

In [47]:
elem = int(input('Wie alt bist Du?'))

if elem < 0:
    print('Das ist unmöglich')
elif elem < 25:
    print('Du bist aber jung')
else:
    print('Du bist aber alt')


Wie alt bist Du?34
Du bist aber alt

Lists


In [29]:
#Eckige Klammern
[1,"hallo",3,4,5.23,6,7]


Out[29]:
[1, 'hallo', 3, 4, 5.23, 6, 7]

In [30]:
lst = [1,2,3,4,5,6,7]

In [31]:
lst


Out[31]:
[1, 2, 3, 4, 5, 6, 7]

In [53]:
#Einzelene Elemente
lst[0]


Out[53]:
1

In [54]:
#Ganze Abschnitte
lst[:4]


Out[54]:
[1, 2, 3, 4]

In [32]:
#Komplexere Schnitte
lst[::3]


Out[32]:
[1, 4, 7]

In [67]:
lst


Out[67]:
[2, 3, 4, 5, 6, 7]

In [41]:
#Append, Pop, etc.
saved_item = lst.pop()

In [38]:
lst


Out[38]:
[3, 4, 5, 6]

In [44]:
lst.append(saved_item)

In [45]:
list


Out[45]:
[3, 4, 5, 6, 7]

In [68]:
#Aufpassen mit Befehl: list weil das macht aus etwas eine Liste. Auch aus Strings:
list('hallo wie geht')


Out[68]:
['h', 'a', 'l', 'l', 'o', ' ', 'w', 'i', 'e', ' ', 'g', 'e', 'h', 't']

In [69]:
range(0,10)


Out[69]:
range(0, 10)

In [70]:
#Elegantester Weg, eine Liste zu schreiben. Und ganz wichtig, 
#der Computer beginn immer bei 0.
list(range(10))


Out[70]:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

In [72]:
list(range(9,-1,-1))


Out[72]:
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

 Dictionaries

Verwende hier die geschwungene Klammern


In [46]:
#Komische, geschwungene Klammern
{'Tier': 'Hund', 'Grösse': 124, 'Alter': 10}


Out[46]:
{'Alter': 10, 'Grösse': 124, 'Tier': 'Hund'}

In [ ]:


In [47]:
dct = {'Tier': 'Hund', 'Grösse': 124, 'Alter': 10}

In [48]:
dct


Out[48]:
{'Alter': 10, 'Grösse': 124, 'Tier': 'Hund'}

In [77]:
dct['Grösse']


Out[77]:
124

In [49]:
#List of Dictionaires
dct_lst = [{'Tier': 'Hund', 'Grösse': 124, 'Alter': 10}, {'Tier': 'Katze', 'Grösse': 130, 'Alter': 8}]

In [50]:
type(dct_lst)


Out[50]:
list

In [52]:
dct_lst[1]


Out[52]:
{'Alter': 8, 'Grösse': 130, 'Tier': 'Katze'}

In [53]:
dct_lst[0]['Alter']


Out[53]:
10

In [56]:
neue_list = []
for xxxxxxxxxxxx in dct_lst:
    neue_list.append(xxxxxxxxxxxx['Alter'])

In [57]:
neue_list


Out[57]:
[10, 8]

Tuples

Hier sind runde Klammern König.


In [91]:
lst


Out[91]:
[1, 2, 3, 4, 5, 6, 7]

In [92]:
tuple(lst)


Out[92]:
(1, 2, 3, 4, 5, 6, 7)

In [93]:
lst


Out[93]:
[1, 2, 3, 4, 5, 6, 7]

In [94]:
lst = tuple(lst)

In [95]:
lst


Out[95]:
(1, 2, 3, 4, 5, 6, 7)

In [ ]:
#Unveränderbar. Also gutes Format, um Sachen abzuspeichern. 
#Aber das wirklich nur der Vollständigkeitshalber.

In [ ]:

Simple Funktionen - len und sort

Beachte wie man die aufruft. Nämlich mit runden Klammern


In [96]:
#len mit Strings
len('hallo wie geht es Dir')


Out[96]:
21

In [97]:
#len mit Lists
len([1,2,3,4,4,5])


Out[97]:
6

In [98]:
#len mit dictionaries
len({'Tier': 'Hund', 'Alter': 345})


Out[98]:
2

In [99]:
#len mit Tuples
len((1,1,1,2,2,1))


Out[99]:
6

In [100]:
#sorted für momentane Sortierung
sorted('hallo wie geht es Dir')


Out[100]:
[' ',
 ' ',
 ' ',
 ' ',
 'D',
 'a',
 'e',
 'e',
 'e',
 'g',
 'h',
 'h',
 'i',
 'i',
 'l',
 'l',
 'o',
 'r',
 's',
 't',
 'w']

In [101]:
a = 'hallo wie geht es Dir'

In [102]:
sorted(a)


Out[102]:
[' ',
 ' ',
 ' ',
 ' ',
 'D',
 'a',
 'e',
 'e',
 'e',
 'g',
 'h',
 'h',
 'i',
 'i',
 'l',
 'l',
 'o',
 'r',
 's',
 't',
 'w']

In [103]:
a


Out[103]:
'hallo wie geht es Dir'

In [104]:
#Sort funktioniert allerdings "nur" mit lists
lst = [1, 5, 9, 10, 34, 12, 12, 14]

In [105]:
lst.sort()

In [106]:
lst


Out[106]:
[1, 5, 9, 10, 12, 12, 14, 34]

In [107]:
dic = {'Tier': 'Hund', 'Alter': 345}

In [108]:
dic.sort()


---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-108-a23e3faafa34> in <module>()
----> 1 dic.sort()

AttributeError: 'dict' object has no attribute 'sort'

For Loop


In [109]:
lst


Out[109]:
[1, 5, 9, 10, 12, 12, 14, 34]

In [112]:
for hghjgfjhf in lst:
    print(x)


34
34
34
34
34
34
34
34

In [114]:
dicbkjghkg = {'Tier': 'Hund', 'Alter': 345}

In [115]:
for key, value in dicbkjghkg.items():
    print(key, value)


Alter 345
Tier Hund

In [116]:
#for loop to make new lists
lst


Out[116]:
[1, 5, 9, 10, 12, 12, 14, 34]

In [117]:
#Nehmen wir einmal an, wir wollen nur die geraden Zahlen in der Liste
new_lst = []
for elem in lst:
    if elem % 2 == 0:
        new_lst.append(elem)
#    else:
#        continue

In [118]:
new_lst


Out[118]:
[10, 12, 12, 14, 34]

For loop with list of dictionaries


In [119]:
dic_lst = [{'Animal': 'Dog', 'Size': 45}, 
          {'Animal': 'Cat', 'Size': 23},
          {'Animal': 'Bird', 'Size': 121212}]

In [120]:
for dic in dic_lst:
    print(dic)


{'Animal': 'Dog', 'Size': 45}
{'Animal': 'Cat', 'Size': 23}
{'Animal': 'Bird', 'Size': 121212}

In [121]:
for dic in dic_lst:
    print(dic['Animal'])


Dog
Cat
Bird

In [123]:
for dic in dic_lst:
    print(dic['Animal'] + ': '+  dic['Size']))


Dog: 45
Cat: 23
Bird: 121212

In [ ]: